Cookies

Utilisation des cookies

Pour le bon fonctionnement du site, nous utilisons des cookies techniques qui permettent de gérer votre connexion.
Nous utilisons des cookies Google Analytics pour le suivi anonyme de la navigation. Vous pouvez désactiver ces derniers à tout moment ici.

Confirmation

Par défaut, nous conservons votre acceptation durant 13 mois.
Gérez vos cookies ici.



Personnaliser

Black Book Éditions, le site de référence des jeux de rôle

Script pour CO Fantasy sous Roll20 5181

Forums > Jeux de rôle > JdR Black Book > Chroniques Oubliées

avatar

Bonjour !

Alors, les PJ continuent à monter en lvl (c'est beau amoureux) donc me voilà avec des nouvelles demandes / remarques pour le code :

- Dédoublement : si c'est possible d'ajouter automatiquement le "double de" dans les alliés (ou bien le rendre insensible aux sorts de zone des PJ ?). Le nécro était un peu tristoune que son armée des morts cible le double invoqué par l'ensorceleur ^^. Mais peut-être que c'est pas possible ? Je crois qu'on en avait déjà parlé ?

- Mon nécro avance dans la voie de Morn, il prend "souffle de mort", quelqu'un a déjà codé ça ?

- L'ensorceleur continue la voie du familier fantastique (le minimoi) pour l'instant il vient d'avoir el rang 2 (le tp) donc rien à coder je pense mais j'anticipe pour la suite ^^.

Encore merci !

Ce message a reçu 2 réponses de
  • Ulti
  • et
  • Ulti
avatar
Kyreelle

Oui, j'avais déjà regardé pour le dédoublement et les alliés. Ça pose pas mal de difficultés, par exemple parce que les alliés sont déterminé en fonction de la fiche de personnage, et que le double partage la fiche de l'original.

Concernant le souffle de mort, c'est pas évident à faire, mais je mets ça sur ma liste. Tu as déjà quelque chose pour les 2 premiers rangs ?

Ce message a reçu 1 réponse de
  • Kyreelle
avatar
Ulti

Non rien, j'ai bricolé pour le rang 2 en lui donnant artificiellement la voie des soins :
!cof-soin @{selected|token_id} @{target|token_id} modere --portee 20 --mana [[1d6]] --rang 2 ?{Tempête de mana?|Non, |Oui,--tempeteDeMana}

Et pour le rang 1, on calcule de tête quand il pense à s'en servir :p

Pour le dédoublement, oki, je continue comme je fais déjà alors et je corrigerai à la main ^^. Si j'y pense, quand je crée une rencontre, je peux imaginer de mettre "Double de #nom du mob" dans le hangout d'allié à l'avance ? Ou bien ça va tout faire bugguer ?

avatar

Pour le dédoublement, oki, je continue comme je fais déjà alors et je corrigerai à la main ^^. Si j'y pense, quand je crée une rencontre, je peux imaginer de mettre "Double de #nom du mob" dans le hangout d'allié à l'avance ? Ou bien ça va tout faire bugguer ?

Kyr

Non, ça ne fera rien, malheureusement, car le script utilise le nom sur la fiche, et le nom sur la fiche ne sera pas "Double de ...".

avatar

Bonsoir, on a tout cassé le script ce soir en live (encore. pardon. désolée.).

En gros on avait un PJ en retard, du coup j'ai sorti un dummy (une bonne grosse hydre) pour que les PJ puissent tester leurs nouvelles capacités (lvl 10 tout frai). Et en passant en fin de combat, ça a crash (même genre que la dernière fois, le script plante à chaque fois qu'on appelle une action même si on vient de le relancer).

On soupçonne l'utilisation de "Ignorer la douleur" en particulier.

Voici un petit palmarès des messages d'erreurs qui sortent :

ReferenceError: Cannot access 'combat' before initialization
ReferenceError: Cannot access 'combat' before initialization
at apiscript.js:4328:11
at iterTokensOfAttribute (apiscript.js:20543:14)
at finDEffet (apiscript.js:4326:9)
at apiscript.js:21054:9
at Array.forEach ()
at sortirDuCombat (apiscript.js:21050:11)
at Object.apiCommand (apiscript.js:41051:9)
at apiscript.js:46776:17
at eval (eval at (/home/node/d20-api-server/api.js:168:1), :65:16)
at Object.publish (eval at (/home/node/d20-api-server/api.js:168:1), :70:8)

TypeError: token.get is not a function
TypeError: token.get is not a function
at persoOfToken (apiscript.js:3670:24)
at distanceCombat (apiscript.js:3703:20)
at turnAction (apiscript.js:24509:29)
at apiscript.js:24915:23
at apiscript.js:7185:7
at Array.forEach ()
at iterSelected (apiscript.js:7174:14)
at apiscript.js:24914:7
at getSelected (apiscript.js:7595:13)
at apiTurnAction (apiscript.js:24913:5)


ReferenceError: Cannot access 'combat' before initialization
ReferenceError: Cannot access 'combat' before initialization
at apiscript.js:4328:11
at iterTokensOfAttribute (apiscript.js:20543:14)
at finDEffet (apiscript.js:4326:9)
at apiscript.js:21054:9
at Array.forEach ()
at sortirDuCombat (apiscript.js:21050:11)
at doNouveauJour (apiscript.js:22185:26)
at apiscript.js:22164:7
at getSelected (apiscript.js:7595:13)
at parseNouveauJour (apiscript.js:22142:5)


TypeError: token.get is not a function
TypeError: token.get is not a function
at persoOfToken (apiscript.js:3670:24)
at distanceCombat (apiscript.js:3703:20)
at turnAction (apiscript.js:24509:29)
at setActiveToken (apiscript.js:20689:9)
at nextTurnOfActive (apiscript.js:43685:7)
at nextTurn (apiscript.js:43991:7)
at eval (eval at (/home/node/d20-api-server/api.js:168:1), :65:16)
at Object.publish (eval at (/home/node/d20-api-server/api.js:168:1), :70:8)
at TrackedObj.set (/home/node/d20-api-server/api.js:1078:14)
at updateLocalCache (/home/node/d20-api-server/api.js:1421:18)

En essayant de passer la nuit :
ReferenceError: Cannot access 'combat' before initialization
ReferenceError: Cannot access 'combat' before initialization
at apiscript.js:4328:11
at iterTokensOfAttribute (apiscript.js:20543:14)
at finDEffet (apiscript.js:4326:9)
at apiscript.js:21054:9
at Array.forEach ()
at sortirDuCombat (apiscript.js:21050:11)
at Object.apiCommand (apiscript.js:41051:9)
at apiscript.js:46776:17
at eval (eval at (/home/node/d20-api-server/api.js:168:1), :65:16)
at Object.publish (eval at (/home/node/d20-api-server/api.js:168:1), :70:8)

Ce message a reçu 1 réponse de
  • Ulti
avatar
Kyreelle

J'espère que ça ne t'a pas trop gaché la séance !

Quand je regarde les messages d'erreurs, j'ai plus l'impression que ce serait lié à l'armée des morts. Et j'ai aussi l'impression que ce sont des erreurs que j'avais corrigées la dernière fois que tu m'avais rapporté ces crashs. Est-ce que tu avais bien la dernière version du git ?

Pour aller plus loin, ce qui m'aiderait vraiment, ce serait que tu aies le script COFantasy en premier dans la liste des scripts installés, car le numéro de ligne affiché correspond à la concaténation de tous les scripts installés dans l'ordre. Donc si COFantasy n'est pas le premier, les lignes ne correspondent à rien, malheureusement.

Ensuite, si tu réussisais à reproduire un des crashs, j'aurais de bien meilleures chances de comprendre ce qui a pu se passer.

Ce message a reçu 1 réponse de
  • Kyreelle
avatar
Ulti

Pas de souci pour la séance, le PJ manquant n'est jamais arrivé donc elle a été reportée (au pire on aurait joué à l'ancienne hein ^^).

Ah oui c'est possible car armée des morts est chez les Boyz (c'est là bas qu'on avait tout cassé la dernière fois) et là ils étaient en "guests" chez les Girlz. Je croyais avoir mis à jour les 2 en même temps mais du coup j'ai le doute. J'ai fais ça et ça à l'air réglé. Et j'en ai profité pour mettre COF en 1er sur toutes les parties ^^.

Là c'était assez difficile de reproduire car, comme dit, iels étaient en mode "récré" et c'était difficile à suivre xD. Le mieux que j'aie c'est la rediff du live et encore car peu lisible confus.

Là j'ai un gros WE événementiel sur ma chaîne mais si j'ai le temps je testerai à nouveau l'armée des morts etc. en hors partie voir si ça plante encore et en surveillant mes actions.

avatar
Kyreelle

J'ai implémenté les 3 premiers rangs de la Voie de Morn. Ça peut être une bonne idée de tester un peu avant la première utilisation avec les joueurs...

avatar

Bonjour,

Comment écrire une arme qui fait des dégats en plus sur un type de créature ?

Ex : Un marteau qui fait 1D6 DMG sup contre les orcs

Ex : Une hache +1 qui fait un 1D6 DMG sup contre les loup-garou (je n'ai pas trouvé les loups garou dans la liste des races).

Merci beaucoup !

Ce message a reçu 1 réponse de
  • Ulti
avatar
Sibylline

Pour cela, tu peut utiliser l'option --if typeCible ou bien --if predicatCible

Dans le cas du marteau qui fait mal aux orques, tu peux ajouter --if typeCible orque --plus 1d6 --endif. Si tous tes orques n'ont pas "orque" dans la race, tu peux simplement leur ajouter un prédicat orque.

Pour la hache contre les loup-garous, tu peux faire pareil. Il faut bien comprendre que --if typeCible peut être utilisé avec n'importe quel prédicat que tu peux définir toi-même. Et si tu ne mets jamais loup-garou dans la race, utilise simplement --if predicatCible, qui ne va regarder que les prédicats.

Ce message a reçu 2 réponses de
  • Sibylline
  • et
  • Kyreelle
avatar
Ulti

Merci Ulti, c'est parfaitement clair. Je me garde cette petite note très très utile !

avatar

Bonjour,

D'abord bravo et merci pour ce script.

J'ai un probleme avec la resolution de la malediction
script derniere version disponible sur roll20

retour de l'api

"Le jet est trop ancien ou éte annulé"
["!cof-resultat-jet","1048","rate","--target","-NIOzzjQjwdS_VorH_tn"]
"Le jet est trop ancien ou éte annulé"
["!cof-resultat-jet","1049","rate","--target","-NIOzzjQjwdS_VorH_tn"]

La malédiction s'applique bien par contre pour valider un jet avec les boutons réussis ou ratés, j'ai toujours le même message sur le dernier jet "COFantasy:Le jet est trop ancien ou éte annulé"(1049).

Par contre si je valide le jet précèdent cela fonctionne... "jetPerso raté."(1048)

Merci par avance

Ce message a reçu 1 réponse de
  • Ulti
avatar
jokol

Bonjour. C'est un bug normalement corrigé sur mon git. J'ai poussé la correction sur Roll20 ce week-end, et ça devrait être intégré d'ici deux ou trois jours, je pense.

Ce message a reçu 1 réponse de
  • jokol
avatar
Ulti

Ok super merci, je vais test avec la version git alors
Ça fonctionne parfaitement avec la version beta


Merci pour ton travail !

avatar

Il y a une petite faute de frappe qui empêche le bon marqueur quand on a les marqueurs personnalisé.
saignementSang au lieu de saignementsSang

case 'saignementSang':            registerMarkerEffet('cof-saigne', effet, m, ms);            break;
Ce message a reçu 1 réponse de
  • Ulti
avatar
jokol

Merci ! J'ai corrigé ça.

avatar
Ulti

Du coup ça me fait penser au dédoublement. On pourrait avoir d'office un prédicat "Dedoublement" mis d'office sur le token de double ? Ou un attribut ? Ensuite, je mets que --ifpredicat Dedoublement --rate --pasDeDmg --endif sur les attaques en zones de mes PJ ?

avatar

Et pareil, j'ai l'impression que "Inderracinable" n'est pas codée (immunité fauchage + aux DM de projection). Mais en attendant, je peux le mettre en predicat sur mon PJ et l'utiliser en condition qui "annule" une partie des effets de l'attaque ? (Si oui comment ? ^^)

J'ai rien dis je suis nulle en orthographe ! J'ai trouvé Indéracinable avec un seul R :p

avatar

Du coup ça me fait penser au dédoublement. On pourrait avoir d'office un prédicat "Dedoublement" mis d'office sur le token de double ? Ou un attribut ? Ensuite, je mets que --ifpredicat Dedoublement --rate --pasDeDmg --endif sur les attaques en zones de mes PJ ?

Kyr

Non, ça ne marcherait pas parce que la fiche est partagée avec l'original. L'original et le double partagent donc les mêmes prédicats. En revanche, le double a un attribut local "dedoublement". Tu pourrais donc déjà faire --if etatCible dedoublement --rate --pasDeDmg --endif

avatar

Bonjour Ulti,

Je te souhaite une bonne année 2023 pour commencer !
Un joueur de ma campagne Anathazerin a pris "Rituel Assuré" deuxième rang de la voie du Guerrier-Mage (p139 du LdB)

J'ai vu qu'il était documenté je l'ai utilisé mais s'il double bien le d20 d'attaque il me semble qu'il ne relance pas les 1 sur les dés de DM.

Pour mémoire le texte d'origine :

2. Rituel assuré (L) : le personnage passe un tour complet à préparer un sort de son choix. Au tour suivant, s’il utilise ce sort, il pourra lancer deux d20 pour son test d’attaque magique et garder le meilleur des deux résultats. Il pourra aussi relancer tous les « 1 » obtenus aux dés de DM.

Merci de ton aide.